package com.sky.mapper;

import com.sky.entity.SetmealDish;

import java.util.ArrayList;
import java.util.List;

public interface SetmealDishMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SetmealDish record);

    int insertSelective(SetmealDish record);

    SetmealDish selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SetmealDish record);

    int updateByPrimaryKey(SetmealDish record);

    /**
     * 批量插入套餐关联菜品信息
     * @param setmealDishes 套餐包含菜品信息对象
     * @return 套餐含有的菜品数量
     */
    int insertBatch(List<SetmealDish> setmealDishes);

    /**
     * 根据传入的菜品id查询这些菜品对应的关联套餐信息
     * @param dishIds 传入的菜品id集合
     * @return 套餐id集合
     */
    List<Long> selectSetmealIdsByDishIds(ArrayList<Long> dishIds);

    /**
     * 查询套餐关联的菜品id有哪些
     * @param id 套餐id
     * @return 此套餐关联的菜品id
     */
    List<Long> selectDishIdsBySetmealId(Long id);

    /**
     * 根据传入的菜品id查询菜品对应的关联套餐信息
     * @param id 传入的菜品id
     * @return 套餐id集合
     */
    List<Long> selectSetmealIdsByDishId(Long id);

    /**
     * 根据套餐id拿到套餐菜品关系
     * @param id 套餐id
     * @return 该套餐所关联的套餐菜品表信息
     */
    List<SetmealDish> selectBySetmealId(Long id);

    /**
     * 根据套餐id删除套餐菜品关联信息
     * @param id 套餐id
     * @return 删除的菜品条数
     */
    int deleteBySetmealId(Long id);
}